【VESC】一.配置开发环境、烧录固件 您所在的位置:网站首页 all-200烧录器 使用手册 【VESC】一.配置开发环境、烧录固件

【VESC】一.配置开发环境、烧录固件

2024-07-16 18:07| 来源: 网络整理| 查看: 265

一.介绍

VESC是一个开源的无刷电机驱动器,由工程师本杰明研发,最初应用于电动滑板,但是由于其出色的性能,也渐渐在其他领域得到了应用。

由于VESC的固件是基于电动滑板这个应用场景开发的,所以如果我们想将其应用在其他领域,就需要对其源码进行二次开发,修改通讯协议或增添自定义的功能。本文章分别介绍了如何在Ubuntu和Windows下搭建开发环境和烧录固件。

二.Ubuntu平台 1.说明

系统:Ubuntu-16.04

若使用Ubuntu-20.04,则安装编译工具链时会比较麻烦,具体可参考这个提问:[How to install arm-none-eabi-gdb on Ubuntu 20.04 LTS (Focal Fossa)

开发环境:GNU Arm Embedded Toolchain + build-essential + 文本编辑器

GNU Arm Embedded Toolchain为arm的嵌入式编译工具链,可以为Arm Cortex-M架构的芯片编译程序,VESC的缔造者本杰明就是使用该工具链编写的VESC固件。build-essential提供了make等编译工具。最后需要一个文本编译器用于修改代码。

烧录:STLink + st-flash

2.搭建开发环境 #下载arm编译工具链 sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa sudo apt update sudo apt install gcc-arm-embedded #下载基本的编译工具 sudo apt install build-essential #从github上下载VESC固件的源码 cd ~ && git clone https://github.com/vedderb/bldc.git vesc_firmware cd vesc_firmware #编译 make 3.烧录固件 #安装依赖 sudo apt-get install git libusb-1.0.0-dev #下载编译stlink软件 git clone https://github.com/stlink-org/stlink.git cd stlink mkdir build && cd build cmake .. make sudo make install #BLDC_4_ChibiOS.bin为编译出的固件名 st-flash write BLDC_4_ChibiOS.bin 0x08000000

若首次使用st-flash时出现链接库错误,可以使用sudo ldconfig修复。烧录成功的提示见下图。 在这里插入图片描述

4.连接BLDC tool #安装依赖 cd ~ sudo apt-get install qtcreator qt-sdk libudev-dev libqt5serialport5-dev #下载编译BLDC tool git clone https://github.com/vedderb/bldc-tool.git cd bldc-tool qmake -qt=qt5 make clean && make #给予串口访问权限 sudo adduser $USER dialout #重启使设置生效 reboot #运行BLDC tool cd ~/bldc-tool ./BLDC_Tool

打开BLDC tool以后,使用mini USB连接VESC V4,或者使用mirco USB连接VESC V6。

注意要焊接该0R电阻,才可以通过USB给VESC供电,若没有焊接,则需要给VESC上强电,下图是VESC V4 0R电阻的位置: 在这里插入图片描述 随后在BLDC tool中选择串口,单击右上角的Connect按钮,若右下角显示连接,则证明固件烧录成功。 在这里插入图片描述

三.Windows平台 1.说明

开发环境:VSCode + GNU Arm Embedded Toolchain + mingw + git bash

VSCode作为文本编译器,同时也将git bash集成在VSCode中,方便进行代码的修改和编译。GNU Arm Embedded Toolchain为arm的嵌入式编译工具链,可以为Arm Cortex-M架构的芯片编译程序,VESC的缔造者本杰明就是使用该工具链编写的VESC固件。mingw可以在windows上提供make指令,可以解释makefile中的编译连接规则。git bash用于在windows上提供一个类linux的终端,执行一些linux命令。

烧录:STLink + STM32 ST-LINK Utility 或 J-Link + J-flash

这两种方式都可以通过VESC上的SWD接口为stm32烧录bin文件。 2.搭建开发环境

我们需要分别下载上面提到的VSCode、GNU Arm Embedded Toolchain、mingw 、git,其中GNU Arm Embedded Toolchain可能使用的人比较少,只需去arm官网对应界面中选择gcc-arm-none-eabi-10-2020-q4-major-win32.exe下载即可。其余三种工具下载起来都比较容易,网上也有很多教程,我在这里就不说了。

下载上述工具时一定要注意配置好环境变量,否则终端无法识别对应的命令。我们可以通过快捷键Win+R打开运行,输入cmd并回车,打开终端。在终端输入git,gcc,arm-none-eabi-gcc三条命令,若终端都可以正常识别,则环境变量配置正确,否则需要手动添加环境变量。

下面给出我安装GNU Arm Embedded Toolchain时添加环境变量的选项: 在这里插入图片描述 下面我们去github上下载源码,下载完使用VSCode打开该文件夹,如果是第一次使用VSCode,则需要先把git bash设置为VSCode的默认集成终端。

我们打开终端后,在终端中输入mingw32-make命令,即可成功编译固件,如下图所示: 在这里插入图片描述 在这里插入图片描述 编译生成的固件在./build路径中。 在这里插入图片描述 在帮助同学配置开发环境的过程中,我发现在同学的电脑上只能成功编译固件一次,之后就会报错,删去编译生成的./.dep文件夹中的中间文件就可以重新编译了。我写了一个脚本来简化编译流程:

if [[ $1 = "force" ]];then rm -rf ./build rm -rf ./build_all fi if [ -f "./Makefile" ];then rm -rf ./.dep mingw32-make else echo "找不到makefile文件,尝试更换文件夹" fi 3.烧录固件

这里以STLink + STM32 ST-LINK Utility为例介绍如何为VESC烧录固件, J-Link + J-flash操作几乎相同。

首先需要在ST的官网上面下载STM32 ST-LINK Utility,记得要留自己的邮箱,这样才能收到下载链接,下载过程中可能会询问你是否要按照STMicroelectronics Virtual COM驱动,我们选择安装。

打开STM32 ST-LINK Utility,将VESC通过ST-LINK连接到电脑。

点击connect按钮,若系统检测到单片机,则可成功连接,若没有检测到,需要再检测一下连接线路。 在这里插入图片描述 随后将我们刚刚编译生成的.bin固件拖进该软件中: 在这里插入图片描述 随后点击烧录按钮进行烧录。 在这里插入图片描述 记得要勾选reset选项,不然烧录进固件以后无法自动 运行,需要手动复位才能运行。在这里插入图片描述

4.连接VESC tool

有关VESC tool的使用,我将会在下一篇博客中详细介绍,这里使用VESC tool来连接电调,只是为了检测我们是否成功烧录了固件。

打开VESC tool,使用mini USB连接VESC V4,或者使用mirco USB连接VESC V6。

注意要焊接该0R电阻,才可以通过USB给VESC供电,若没有焊接,则需要给VESC上强电,下图是VESC V4 0R电阻的位置: 在这里插入图片描述

点击连接按钮,若能成功检测到VESC,则证明固件烧录成功。 在这里插入图片描述

四.参考资料

Benjamin’s robotics

vedderb/bldc-tool

vedderb/bldc

stlink-org/stlink

bilibili up:北冥有鱼qzs



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有